﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;
using System.Xml.Linq;

public partial class SolicitudesPractica_FormListaEmpresas : System.Web.UI.Page
{
    static DataTable empresas;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["nit"] != null)
            Response.Redirect("/SUEWebSite/Error.aspx");
        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------
        else if (Session["nomUsr"] != null)
        {
            List<String> Permisos = (List<String>)Session["Permisos"];

            if (!Permisos.Contains(System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath)))
                Response.Redirect("/SUEWebSite/Error.aspx");

        }
        else Response.Redirect("/SUEWebSite/Principal.aspx");

        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------

        if (!Page.IsPostBack)
        {
            empresas = new DataTable();
            empresas.Columns.Add("nombre");
            empresas.Columns.Add("nit");
            empresas.Columns.Add("direccion");
            empresas.Columns.Add("telefono");
            empresas.Columns.Add("email");
            CargarTabla(Filtrar("", "", 2));

        }
    }

    private void CargarTabla(List<Empresa> listEmp)
    {
        empresas.Rows.Clear();

        foreach (Empresa emps in listEmp)
        {
            empresas.Rows.Add(new object[] { emps.ObtNombre(), emps.ObtNit(), emps.ObtDir(), emps.ObtTel(), emps.ObtEmail() });
        }
        GVEmpresas.DataSource = empresas;
        GVEmpresas.DataBind();
    }

    private List<Empresa> Filtrar(string nombre, string nit, int estado)
    {
        Empresa emp = new Empresa();
        List<Empresa> listEmp = emp.consultarEmpresa();
        List<Empresa> Filtro = new List<Empresa>();
        if (nombre != "" || nit != "")
        {
            foreach (Empresa emps in listEmp)
            {
                if (emps.ObtEstado() == estado)
                    if (emps.ObtNit().Contains(nit) && emps.ObtNombre().Contains(nombre))
                        Filtro.Add(emps);
            }
        }
        else
        {
            foreach (Empresa emps in listEmp)
            {
                if ((emps.ObtEstado() == estado))
                    Filtro.Add(emps);
            }
        }
        return Filtro;
    }
    protected void ButtonBuscar_Click(object sender, EventArgs e)
    {
        //int estado;
        //if (DropDownListEstado.SelectedItem.ToString() == "Inactivo")
        //    estado = 1;
        //else
        //    estado = 2;
        CargarTabla(Filtrar(TextBoxNombre.Text, TextBoxNit.Text, 2));
    }
    protected void GVEmpresas_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GVEmpresas.DataSource = empresas;
        GVEmpresas.PageIndex = e.NewPageIndex;
        GVEmpresas.DataBind();
    }
}
